home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / c / ExtrasLib.lha / ExtrasLib / Source / GTLIB / ButtonGetSize.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-30  |  985 b   |  49 lines

  1. #include <extras/gtobject.h>
  2.  
  3. ULONG BUTTON_GetSize(struct gtpGetSize *GS)
  4. {
  5.   struct IBox     domain;
  6.   struct TagItem  *tags;
  7.   struct TextAttr *ta;
  8.   struct TextFont *font;
  9.   STRPTR label;
  10.   LONG  flags,
  11.         labellen;
  12.           
  13.   gd=INST_DATA(C,O);
  14.   
  15.   tags=GS->gtpgs_TagList;
  16.   
  17.   flags      = GetTagData(GTA_Flags,         0, tags) & 0xF;
  18.   ta         = GetTagData(GTA_TextAttr,      0, tags);
  19.   label      = GetTagData(GTA_GadgetText,    0, tags);
  20.  
  21.   if(label)
  22.   {
  23.     if(font=OpenDiskFont(ta))
  24.     {
  25.       labellen=StrLength( SL_TextFont,    font,
  26.                         SL_String,      label,
  27.                         TAG_DONE);
  28.                         
  29.       domain.Width  = 8;
  30.       if(!flags)
  31.       {
  32.         domain.Width += labellenmxw;
  33.       }
  34.       domain.Height = 4 + font->tf_YSize;
  35.       
  36.       
  37.       CloseFont(font);
  38.     }
  39.   }
  40.   
  41.   GS->gtpgs_Domain[0]=domain;
  42.   GS->gtpgs_Domain[1]=domain;
  43.   
  44.   domain.Width=32767;
  45.   GS->gtpgs_Domain[2]=domain;
  46.   return(1);
  47. }
  48.  
  49.